package com.ias.log.enums;

import com.ias.common.base.IBaseEnum;
import lombok.Getter;

/**
 * 操作类型枚举
 * 
 * @author ias
 * @since 2024
 */
@Getter
public enum LogOptTypeEnum implements IBaseEnum<Integer> {

    /**
     * 新增
     */
    INSERT(1, "新增"),

    /**
     * 修改
     */
    UPDATE(2, "修改"),

    /**
     * 删除
     */
    DELETE(3, "删除"),

    /**
     * 查询
     */
    SELECT(4, "查询"),

    /**
     * 导出
     */
    EXPORT(5, "导出"),

    /**
     * 导入
     */
    IMPORT(6, "导入"),

    /**
     * 登录
     */
    LOGIN(7, "登录"),

    /**
     * 登出
     */
    LOGOUT(8, "登出"),

    /**
     * 其他
     */
    OTHER(9, "其他");

    private final Integer value;
    private final String label;

    LogOptTypeEnum(Integer value, String label) {
        this.value = value;
        this.label = label;
    }

    /**
     * 根据操作类型获取操作类型名称
     *
     * @param optType 操作类型
     * @return 操作类型名称
     */
    public static String getOptTypeNameByOptType(Integer optType) {
        if (optType == null) {
            return null;
        }
        for (LogOptTypeEnum typeEnum : LogOptTypeEnum.values()) {
            if (typeEnum.getValue().equals(optType)) {
                return typeEnum.getLabel();
            }
        }
        return null;
    }
}

